Micron Document




Stackless Python
part 2/4 · 5.8 KB total
──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
Contents


──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

Concevoir

Avec Stackless Python, un programme en cours d'exécution est divisé en microthreads qui sont gérés par l'interpréteur de langage lui-même, et non par le noyau du système d'exploitation. Les microthreads gèrent l'exécution de différentes sous-tâches dans un programme sur le même cœur de processeur. Ainsi, ils constituent une alternative à la programmation asynchrone basée sur les événements et évitent également la surcharge liée à l'utilisation de threads séparés pour les programmes monocœur (car aucune commutation de mode entre le mode utilisateur et le mode noyau ne doit être effectuée, de sorte que l'utilisation du processeur peut être réduite)cite-ref-1[1].

Bien que les microthreads facilitent l'exécution de sous-tâches sur un seul cœur, Stackless Python ne supprime pas le Global Interpreter Lock de CPython, et n'utilise pas non plus plusieurs threads et/ou processus. Il n'autorise donc que le multitâche coopératif sur un processeur partagé et non le parallélisme (la préemption n'était pas disponible à l'origine mais est maintenant sous une formecite-ref-2[2]). Pour utiliser plusieurs cœurs de processeur, il faudrait toujours créer un système de communication interprocessus au-dessus des processus Python Stackless.

──────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────